var page;
var totalCount;
var pageSize;
var pageNaviSize;
var totalPageSize;
var startPage;
var endPage;
var naviId;
var funcName;

/*
 * page : 현재 페이지
 * totalCount : 리스트 총 갯수
 * pageSize : 한 페이지에 보여주는 리스트 갯수(기본값 10)
 * pageNaviSize : 한장에 보이는 페이지 수(기본값 10) -- 페이지 네비게이터(?)
 * naviId : 페이지 네비게이터를 담을 공간 ID
 * funcName : 페이지 번호를 클릭했을때 실제 페이지를 
 * 			이동시킬 함수명(페이지 번호를 파라미터로 받는 함수로 만들것)
 */

function setPage(param) {
	page = param.page;
	totalCount = param.totalCount;
	pageSize = param.pageSize == null ? 10 : param.pageSize;
	pageNaviSize = param.pageNaviSize == null ? 10 : param.pageNaviSize;
	totalPageSize = Math.ceil(totalCount / pageSize);
	startPage = Math.ceil((page) / pageNaviSize - 1) * pageNaviSize + 1;
	endPage = Math.ceil((page) / pageNaviSize) * pageNaviSize;
	naviId = param.naviId;
	funcName = param.funcName;
	
	setPageNum();
}

function setPageNum() {
	$("#" + naviId).html("");
	var navi = $("<span/>", {
		id: "navi",
		html: ""
	});
	
	$("#" + naviId).append(" &nbsp; <a href='javascript:first()'>[처음]<a/> &nbsp; ");
	$("#" + naviId).append(" <a href='javascript:pre()'>[이전]<a/> &nbsp; ");
	$("#" + naviId).append(navi);
	$("#" + naviId).append(" <a href='javascript:next()'>[다음]<a/> &nbsp; ");
	$("#" + naviId).append(" <a href='javascript:last()'>[마지막]<a/> &nbsp; ");
	
	for ( var i = startPage; i <= endPage && i <= totalPageSize; i++) {
		x = "";
		if (i == page) {
			x = "<B style='font-weight: bold;'>[" + i + "]</B> &nbsp; ";
			$(navi).append(x);
		} else {
			x = "<a onclick=" + funcName + "(" + i + ")>[" + i + "]<a/>" + " &nbsp; ";
			$(navi).append(x);
		}
	}
}

function pre() {
	if(startPage != 1) {
		startPage -= pageNaviSize;
		endPage -= pageNaviSize;
		setPageNum();
	} else {
		alert("페이지의 처음입니다.");
	}
}

function next() {
	if(endPage < totalPageSize) {
		startPage += pageNaviSize;
		endPage += pageNaviSize;
		setPageNum();
	} else {
		alert("페이지의 마지막입니다.");
	}
}

function first() {
	if(startPage != 1) {
		startPage = 1;
		endPage = pageNaviSize;
		setPageNum();
	}
}

function last() {
	var pg = Math.ceil(totalCount / pageSize);
	startPage = Math.ceil((pg) / pageNaviSize -1 ) * pageNaviSize + 1;
	endPage = Math.ceil((pg) / pageNaviSize) * pageNaviSize;
	setPageNum();
}